1. Field of the Invention
The present invention generally relates to satellite position location systems and, more particularly, to a method and apparatus for processing satellite positioning system signals to obtain time information.
2. Description of the Related Art
Global Positioning System (GPS) receivers use measurements from several satellites to compute position. GPS receivers normally determine their position by computing time delays between transmission and reception of signals transmitted from satellites and received by the receiver on or near the surface of the earth. The time delays multiplied by the speed of light provide the distance from the receiver to each of the satellites that are in view of the receiver.
More specifically, each GPS signal available for commercial use utilizes a direct sequence spreading signal defined by a unique pseudo-random noise (PN) code (referred to as the coarse acquisition (C/A) code) having a 1.023 MHz spread rate. Each PN code bi-phase modulates a 1575.42 MHz carrier signal (referred to as the L1 carrier) and uniquely identifies a particular satellite. The PN code sequence length is 1023 chips, corresponding to a one millisecond time period. One cycle of 1023 chips is called a PN frame or epoch.
GPS receivers determine the time delays between transmission and reception of the signals by comparing time shifts between the received PN code signal sequence and internally generated PN signal sequences. These measured time delays are referred to as “sub-millisecond pseudoranges”, since they are known modulo the 1 millisecond PN frame boundaries. By resolving the integer number of milliseconds associated with each delay to each satellite, then one has true, unambiguous, pseudoranges. A set of four pseudoranges together with knowledge of absolute times of transmission of the GPS signals and satellite positions in relation to these absolute times is sufficient to solve for the position of the GPS receiver. The absolute times of transmission (or reception) are needed in order to determine the positions of the GPS satellites at the times of transmission and hence to compute the position of the GPS receiver.
Accordingly, each of the GPS satellites broadcasts a model of satellite orbit and clock data known as the satellite navigation message. The satellite navigation message is a 50 bit-per-second (bps) data stream that is modulo-2 added to the PN code with bit boundaries aligned with the beginning of a PN frame. There are exactly 20 PN frames per data bit period (20 milliseconds). The satellite navigation message includes satellite-positioning data, known as “ephemeris” data, which identifies the satellites and their orbits, as well as absolute time information (also referred to herein as “GPS time” or “time-of-day”) associated with the satellite signal. The absolute time information is in the form of a second of the week signal, referred to as time-of-week (TOW). This absolute time signal allows the receiver to unambiguously determine a time tag for when each received signal was transmitted by each satellite.
Notably, FIG. 1 depicts a diagram showing the format of a GPS navigation message. The GPS navigation data message, as defined by ICD-GPS-200C, comprises a sequence of 1500-bit frames broadcast at 50 bits per second (“frames 102”). Each of the frames 102 is transmitted in 30 seconds. Each of the frames 102 includes five sub-frames 1041 through 1045 (collectively referred to as sub-frames 104). Each of the sub-frames includes 300 bits and is thus transmitted in 6 seconds. The first three sub-frames 1041 through 1043 include ephemeris and clock correction information associated with a particular broadcasting satellite. Over a particular period of time (e.g., four hours), the first three sub-frames 1041 through 1043 are identically repeated in each 1500-bit frame 102. The fourth and fifth sub-frames 1044 and 1045 include part of a satellite almanac, which includes coarse ephemeris and time model information for the entire satellite constellation. The contents of the fourth and fifth sub-frames 1044 and 1045 change until the entire almanac is transmitted. The repetition period of the fourth and fifth sub-frames 1044 and 1045 is 12.5 minutes (i.e., the entire satellite almanac is contained in 15,000 bits).
Each of the sub-frames 104 includes ten words of 30 bits in length. Notably, each of the sub-frames 104 includes a telemetry word (“TLM word 106”), a hand-over word (“HOW 108”), and eight data words (“data words 110”). The TLM word 106 includes a preamble 112, a telemetry message (“TLM message 114”), a pair of reserved bits 116, and parity data 118. The preamble 112 includes a known eight-bit sequence defined as “10001011”. The TLM message 114 includes telemetry information for military applications and is representing using 14 bits (i.e., bits 9-22 of the TLM word 106). The reserved bits 116 are the 23rd and 24th bits of the TLM word 16. The parity data 118 includes a Hamming code for the TLM word 106 and is represented using six bits (i.e., bits 25-30).
The HOW 108 includes a TOW-count message 120, an alert flag 122, an anti-spoof flag 124, a sub-frame ID 126, and parity data 128. The TOW-count message 120 includes the number of seconds elapsed since midnight of Jan. 5, 1980, and is represented using 17 bits (i.e., bits 1-17 of the HOW 108). The TOW is synchronized to the beginning of the next sub-frame. The alert flag 122 and the anti-spoof flag 124 are for military applications and are each represented using one bit (i.e., bits 18 and 19). The sub-frame ID 126 includes the number of the current sub-frame and is represented using three bits (i.e., bits 20-22). The parity data 128 includes a Hamming code for the HOW word 108 as well as padding bits and is represented using eight bits (i.e., bits 23-30).
Conventionally, a GPS receiver determines absolute time by decoding and synchronizing the 50 bps navigation data stream. GPS satellites move at approximately 3.9 km/s, and thus the range of the satellite, observed from the earth, changes at a rate of at most ±800 m/s. Absolute timing errors result in range errors of up to 0.8 m for each millisecond of timing error. These range errors produce a similarly sized error in the GPS receiver position. Hence, absolute time accuracy of 10 ms is sufficient for position accuracy of approximately 10 m. Absolute timing errors of much more than 10 ms will result in large position errors, and so typical GPS receivers have required absolute time to approximately 10 milliseconds accuracy or better.
In some GPS applications, the signal strengths of the satellite signals are so low that either the signals cannot be processed, or the time required to process the signals is excessive. Notably, the navigation data stream cannot be reliably decoded and synchronized. As such, the TOW data within the satellite signals cannot be accurately received. Absent another source of accurate time, the remote receiver will not be able to accurately locate its position.
Accordingly, there exists a need in the art for a method and apparatus that processes satellite positioning system signals to obtain time information.